1. Field of Invention
The present invention relates in general to the data processing field. More particularly, the present invention relates to a method, apparatus and computer program product for managing resources assigned to one or more logical partitions and/or one or more appliance partitions in a multi-user computer system.
2. Background Art
Computer systems typically include a combination of hardware and software. The combination of hardware and software on a particular computer system defines a computing environment. Different hardware platforms and different operating systems thus provide different computing environments. In recent years, engineers have recognized that it is possible to provide different computing environments on the same physical computer system by logically partitioning the computer system resources into different computing environments. Such a computer system is often referred to as a multipartitioned computer system. The IBM Power Systems (formerly IBM System i and System p) computer system developed by International Business Machines Corporation is an example of a computer system that supports logical partitioning. If logical partitioning on such a computer system is desired, partition manager code (referred to herein as a “hypervisor”) is installed that allows defining different computing environments on the same platform. Once the hypervisor is installed, logical partitions may be created that define different computing environments. The hypervisor manages the logical partitions to assure that they can share needed resources in the computer system while maintaining the separate computing environments defined by the logical partitions.
A computer system that includes multiple logical partitions typically shares resources (e.g., processors, memory, persistent storage, and other physical hardware) amongst the logical partitions. For example, a computer system with a single CPU could have two logical partitions defined, with 50% of the CPU assigned to each logical partition, with 33% of the memory assigned to the first logical partition and 67% of the memory assigned to the second logical partition, and with two different I/O slots assigned to the two logical partitions, one per partition. Once logical partitions are defined and shared resources are assigned to the logical partitions, each logical partition acts as a separate computer system. Thus, in the example above that has a single computer system with two logical partitions, the two logical partitions will appear for all practical purposes to be two separate and distinct computer systems.
Input/Output (I/O) adapters can be exclusively assigned to (also referred to herein as being “owned by”) logical partitions (LPARs) or shared by LPARs through an appliance partition known as a virtual I/O server (VIOS) partition. For example, a VIOS partition allows Ethernet and storage devices to be virtualized and served out to LPARS on a server. The actual physical hardware is owned by the VIOS partition, while the LPARs own virtual devices associated with the physical hardware. As a result, the VIOS partition is considered a service partition with authority to make any changes to the hardware, which in turn could affect the virtual devices being used by the LPARs. The LPARs do not have any direct access to the physical hardware owned by the VIOS partition.
Operations of the different partitions in one or more computer systems may be controlled through a hardware management console (HMC), which is a form of a service partition. In one embodiment, a hardware management console is a separate computer system from which a system administrator, for example, may perform various functions including assignment of hardware resources to each logical partition, as well as reassignment of resources to different logical partitions. In other embodiments, a hardware management console may be installed directly on the system being managed (e.g., IBM's Integrated Virtualization Manager, VMWare Server).
Servers and other computer systems generally support multiple methods for access to partitions, both through service interfaces, such as hardware management consoles, and non-service interfaces. As a result, there is always the potential for a user of a computer system to step on another user of the computer system unknowingly.
In a multi-user server environment, for example, there are typically multiple operating systems, a system management utility, and a hypervisor—with all these areas owning/using different pieces of hardware. So, no one area has full knowledge of what actions are taking place elsewhere on the computer system. Therefore, determining that one action will cause a conflict with another is not always very straight forward (but could be in some situations).
Conventional management systems for managing the partitions are based on calendar entries. Unfortunately, the users of computer systems having such conventional management systems must be regimented about their use. Forgetting to make an entry, check entries, or making a mistake in the calendar can result in two different users logging on to different parts of the same computer system and causing issues for each other.
For example, there may be a server administrator using a hardware management console (HMC) to work on a serviceability action for hardware owned by a partition while another user is trying to run tasks on the partition that requires that same hardware. Today there exists no way for these users to realize that they could cause issues for one another unless both users are regular with the conventional management system's calendars and both users remember to verify the calendar entries. With the complexity of computer systems such as servers, there are often multiple administrators and they too could cause conflicts of the computer system if the conventional management system's calendar is not adhered to regularly.
Thus, while conventional management systems attempt to prevent these issues from occurring, they occur nonetheless because such systems depend on the users' awareness and regularity with respect to calendar updates and verification. The safeguards that are provided through such conventional management systems are no longer sufficient, especially given the size and complexity of computer systems such as servers and the number of partitions the users' may be dealing with.
Therefore, a need exists for an enhanced mechanism for managing resources assigned to one or more logical partitions and/or one or more appliance partitions in a multi-user computer system.